#ifndef _LIVOX_PARSER_H_
#define _LIVOX_PARSER_H_

#include "data_type.h"

namespace apollo {
namespace drivers {
namespace livox {

using apollo::drivers::PointCloud;

class LivoxParser {
 public:
  bool Init();
  void ParseData(const LivoxPacket* data, PointCloud* cloud);

 private:
  void CartesianCoordinateHighDataProcess(const LivoxPacket* data,
                                          PointCloud* cloud);
  void CartesianCoordinateLowDataProcess(const LivoxPacket* data, PointCloud* cloud);
  uint64_t GetStoragePacketTimestamp(const LivoxPacket* data);
};

}  // namespace livox
}  // namespace drivers
}  // namespace apollo

#endif
